Add move and resize to the csd window menu
authorMatthias Clasen <mclasen@redhat.com>
Mon, 13 Jan 2014 03:09:52 +0000 (22:09 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 13 Jan 2014 03:25:20 +0000 (22:25 -0500)
With the previous commit, these operations can be implemented
now.

gtk/gtkwindow.c

index 3966c38ce055f26f51461631a266cfd9bed71d19..a99272884e7ec31155bc49618b095340c16ded1d 100644 (file)
@@ -8124,6 +8124,28 @@ close_window_clicked (GtkMenuItem *menuitem,
   send_delete_event (window);
 }
 
+static void
+move_window_clicked (GtkMenuItem *menuitem,
+                     gpointer     user_data)
+{
+  GtkWidget *widget = (GtkWidget *)user_data;
+
+  gdk_window_begin_move_drag (gtk_widget_get_window (widget),
+                              0, 0, 0,
+                              gtk_get_current_event_time ());
+}
+
+static void
+resize_window_clicked (GtkMenuItem *menuitem,
+                       gpointer     user_data)
+{
+  GtkWidget *widget = (GtkWidget *)user_data;
+
+  gdk_window_begin_resize_drag (gtk_widget_get_window (widget),
+                                0, 0, 0, 0,
+                                gtk_get_current_event_time ());
+}
+
 static void
 gtk_window_do_popup (GtkWindow      *window,
                      GdkEventButton *event)
@@ -8159,6 +8181,20 @@ gtk_window_do_popup (GtkWindow      *window,
                             G_CALLBACK (_gtk_window_toggle_maximized), window);
   gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
 
+  menuitem = gtk_menu_item_new_with_label (_("Move"));
+  gtk_widget_show (menuitem);
+  g_signal_connect (G_OBJECT (menuitem), "activate",
+                    G_CALLBACK (move_window_clicked), window);
+  gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
+
+  menuitem = gtk_menu_item_new_with_label (_("Resize"));
+  gtk_widget_show (menuitem);
+  if (!priv->resizable || priv->maximized)
+    gtk_widget_set_sensitive (menuitem, FALSE);
+  g_signal_connect (G_OBJECT (menuitem), "activate",
+                    G_CALLBACK (resize_window_clicked), window);
+  gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
+
   menuitem = gtk_check_menu_item_new_with_label (_("Always on Top"));
   gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), priv->above_initially);
   if (priv->maximized)